﻿using System;
using System.Collections.Generic;
using System.Text;
using Tree.Lifecycle;

namespace Tree.Injector
{
    /// <summary>
    /// Object Dependency Injection.
    /// </summary>
    public interface IDependencyInjector
    {
        /// <summary>
        /// Inject dependencies in the parameterized object from the container.
        /// </summary>
        /// <param name="obj">Object to inject dependencies.</param>
        void Inject(object obj);

        /// <summary>
        /// Wires dependencies creating new objects from using the Object Factory.
        /// </summary>
        /// <param name="obj">Object to wire dependencies.</param>
        void Wire(object obj);
    }
}
